.TH \fIAutochar\fP 1 "February 5, 1999"

.SH NAME
\fIautochar\fP - Automatic cell characterization of digital circuits.
.SH SYNOPSIS
.B \fIautochar\fP [-hs] [-c cellname] [-o report] input+

.SH DESCRIPTION
The program \fIautochar\fP is used to automate the characterization
of digital circuits.  It basically generates simulation wrappers for popular
circuit simulators like Hspice and Smartspice (sorry, no spice2 or spice3),
and allows the user to characterize circuit behavior such as delay as a
function of loading capacitance, input capacitance, register setup and hold times,
clock enable setup and hold times, and clock to Q delay
as a function of load capacitance.  Other characterization types will
be added in future updates of \fIautochar\fP, including tristate buffers,
power, and critical path delays.
.sp
The outputs of \fIautochar\fP are a characterization report, an
optional database, and an optional Synopsys model.  Other formats
can be easily generated by using the database.
.sp
In this implementation, \fIautochar\fP is entirely written in
perl (version 5.004_04), including the input control files (effectively
a perl API!) and the database.  This gives the user much flexibility
in expanding the functionality and integrating it into library development flows.

.SH OPTIONS
.TP 8
.B -h
Print help usage.
.TP 8
.B -s
Skip running spice if output if found.  The default is to run spice
regardless of any outputs found.
.TP 8
.B -c cellname
The name of the cell to characterize.
.TP 8
.B -o report
The name of the output report.  The default is cellname.rpt.
.TP 8
.B input+
Input control file(s).  The input control files (perl commands) will
be executed in the order given.

.SH CHARACTERIZATION MODULES
The characterization modules share common defaults as specified in
the $AUTOCHAR/lib/defaults.spec.  The user specifies technology,
nodes, scaling, timing, and many other parameters in this file.
.sp
.TP 4
.B Load Delay
A series of transient simulations are performed while
an ideal capacitor whose value is varied is applied at the specified
output of some combinatorial circuit.  Linear regression is used to
fit the circuit delay as a function of capacitive load.  The input
slew rate may also be varied.  See $AUTOCHAR/lib/load_delay.spec.
.sp
.TP 4
.B Input Capacitance
The input capacitance of specified inputs are characterized by
finding the equivalent ideal capacitance value during transient
simulations.  The Hspice and Smartspice optimizers are used to
vary the ideal capacitance value.  See $AUTOCHAR/lib/input_cap.spec.
.sp
.TP 4
.B D Setup/Hold
The setup and hold times of a standard D-flop data input with
respect to a reference clock signal are found using a binary
search mechanism.  The search is done using Hspice and Smartspice's
built-in capabilities to help reduce the simulation time.
See $AUTOCHAR/lib/setup_hold.spec.
.sp
.TP 4
.B CE Setup/Hold
The setup and hold times of a standard D-flop clock enable input with
respect to a reference clock signal are found using a binary
search mechanism.  The search is done using Hspice and Smartspice's
built-in capabilities to help reduce the simulation time.
See $AUTOCHAR/lib/clock_enable.spec.
.sp
.TP 4
.B Clock to Q
A series of transient simulations are performed while
an ideal capacitor whose value is varied is applied at the Q output
of a standard D-flop.  Linear regression is used to
fit the circuit delay as a function of capacitive load.  The clock's
slew rate may also be varied.  See $AUTOCHAR/lib/clock_q.spec.

.SH FILES
.sp
.TP 4
.B bin/ src/
These directories contain the executables,sample spice scripts, and source code.
.sp
.TP 4
.B doc/ man/
These directories contain miscellaneous documents and this man page.
.sp
.TP 4
.B example/
This directory contains a sample run.
.sp
.TP 4
.B lib/
This directory contains control file templates.
.sp
.TP 4
.B tech/
This is a sample tech directory containing models from HP and TSMC
through MOSIS.  \fIAutochar\fP requires that there be a single
".include" file that will bring in all the necessary technology
related files to run spice.  For example, $TECHDIR/tsmc035/include/ttlh.sp
sets up the typical-typical N and P devices at low Vdd and high temperature.
\fIAutochar\fP also requires special node names, spice parameters, and subcircuits
be available, as those shown in the $TECHDIR/tsmc035/lib directory.

.SH ENVIRONMENT VARIABLES
.sp
.TP 4
.B AUTOCHAR
This variable points to the \fIautochar\fP installation directory.
.sp
.TP 4
.B TECHDIR
This variable points to the installation of the spice technology directory.
.sp
.TP 4
.B RUNDIR
This variable points to the directory where the characterizations are run
and is required if the user chooses to follow the setup in the example provided.
.sp
.TP 4
.B PERL
This variable points to where perl resides, and is needed only during
the installation of \fIautochar\fP.

.SH NOTES
Hspice is a registered trademark of Avant! Corporation.
Smartspice is a registered trademark of Silvaco International.
Synopsys is a registered trademark of Synopsys, Inc.
.sp
\fIAutochar\fP Copyright (c) 1999 Robert Yu.  \fIAutochar\fP is freely distributed
under GNU Public License.  See the source distribution for details.

.SH AUTHOR
Robert Yu <robert@yu.org>.  Thanks to Russell Kempt of
Silvaco Intl. with his assistance with Smartspice.
